package com.seeTools.boot.pc.service.sys;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.seeTools.boot.api.entity.sys.SysDictData;
import com.seeTools.boot.common.core.PageQuery;
import com.seeTools.boot.pc.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * @Author: seeTools
 * @Date: 2024/6/7  11:02
 * @Version 1.0
 */
public interface SysDictDataService extends BaseService<SysDictData> {


    /**
     * 分页查询
     *
     * @param pageQuery 分页数据
     * @return 对象
     */
    Page<SysDictData> findList(PageQuery<SysDictData> pageQuery);


    /**
     * 根据字典类型查询字典数据
     *
     * @param dictType 字典类型
     * @return 字典数据集合信息
     */
    List<SysDictData> selectDictDataByType(String dictType);


    /**
     * 获取详情
     *
     * @param dictCode
     * @return
     */
    SysDictData getInfo(Long dictCode);


    /**
     * 根据条件分页查询字典数据
     *
     * @param sysDictData 字典数据信息
     * @return 字典数据集合信息
     */
    List<SysDictData> selectDictDataList(SysDictData sysDictData);


    /**
     * 根据字典类型和字典值获取字典标签
     *
     * @param dictType
     * @param dictValue
     * @return
     */
    String getDictLabel(String dictType, String dictValue);


    /**
     * 根据字典类型和字典值获取字典标签s
     *
     * @param dictType
     * @param dictValues
     * @return
     */
    String getDictLabels(String dictType, String dictValues);


    /**
     * 根据字典类型和字典标签获取字典值
     *
     * @param dictType  字典类型
     * @param dictLabel 字典标签
     * @return 字典值
     */
    String getDictValue(String dictType, String dictLabel);

    /**
     * 根据字典类型和字典标签获取字典值
     *
     * @param dictType   字典类型
     * @param dictLabels 字典标签
     * @return 字典值
     */
    String getDictValues(String dictType, String dictLabels);

    /**
     * 获取字典下所有的字典值与标签
     *
     * @param dictType 字典类型
     * @return dictValue为key，dictLabel为值组成的Map
     */
    Map<String, String> getAllDictByDictType(String dictType);
}
